Trick Mode Support for VOD with Long Intra-Frame Intervals

ABSTRACT

A video-on-demand system encodes multiple video streams from media content, such that the video streams have staggered intra-frame intervals. When a client device requests a video stream, the video-on-demand system selects one of the multiple video streams based on the position of the intra-frames, and transmits the selected video stream to the client device.

RELATED APPLICATION

This application is a divisional of and claims priority to U.S. patentapplication Ser. No. 10/289,894, filed on Nov. 7, 2002, entitled “TrickMode Support for VOD with Long Intra-Frame Intervals”.

BACKGROUND

Many media entertainment systems allow users to access video-on-demand(VOD), such as pay-per-view movies. With higher compression rates, theability to widely deploy VOD is improved, and the cost of suchdeployment is decreased. Digital video is encoded as a series of frameswithin a video stream. A frame may be either an intra-unit (orintra-frame) or a non-intra-unit (or non-intra-frame). An intra-frame isa frame that can be decoded and displayed without reference to any otherframes. A non-intra-frame is a frame that contains only a portion of thedata necessary to decode and display an entire image. An MPEG I-frame isan example of an intra-frame, while MPEG B-frames and P-frames areexamples of non-intra-frames. When a client device (e.g., a set-top box)tunes to a particular video stream, a complete picture is not availableuntil the set-top box receives and processes an intra-frame. In videostreams encoded for traditional broadcast, an intra-frame is insertedevery 0.5 seconds (or other very short interval) so that when a set-topbox tunes to a channel on which the stream is being broadcast, thepicture can be acquired quickly. Higher video compression, resulting invideo streams with a much lower overall bitrate can be achieved byinserting fewer intra-frames at larger intervals, such as every 30seconds.

When a viewer tunes to a channel over which digital video is beingbroadcast (e.g., by changing television channels), the viewer mayexperience a delay between the time at which the channel is selected andthe time at which the broadcast video is displayed. The length of thedelay is based on two factors; first, the interval between intra-framesin the broadcast digital video stream; and second, a current videostream location at the time the channel is tuned. For example, if aviewer changes channels such that when the new channel is tuned, thefirst frame received is an intra-frame, then there will be no delay inthe display of the broadcast digital video. On the other hand, if theviewer changes channels such that when the new channel is tuned, thefirst frame received is not an intra-frame, then there will be a delayin the display until the next intra-frame is received. As a result,short intra-frame intervals are desired in broadcast digital video tominimize potential viewing delays.

Alternatively, when a viewer requests on-demand media content, theserver can begin transmission of the requested media content with anintra-frame, thus avoiding any delay between tuning and display. As aresult, long intra-frame intervals in on-demand media streams aretolerable because the distance between intra-frames in on-demand mediastreams is irrelevant with respect to channel acquisition delays.

A problem with longer intra-frame intervals in the delivery of on-demandvideo becomes evident, however, when one considers supporting controlfunctions along with the video-on-demand. Control functions are thosefunctions typically available in a video cassette recorder (VCR), suchas fast forward, rewind, pause, etc. The channels over whichvideo-on-demand is delivered are not capable of sending data faster whena user selects an accelerated speed, such as fast forward or rewind. Tosupport such control functions, VOD systems implement “trick modes” ofoperation. A VOD server typically stores multiple video streamsassociated with a particular media content (e.g., a movie). One streamstores the media content running at normal speed, while other streamsstore the media content running at one or more other forward and/orreverse rates. In use, when a user selects an on-demand video, a VODserver begins transmitting a normal speed video stream. If a userselects a fast forward command, the VOD server begins transmitting afast forward video stream, beginning the transmission at a location inthe fast forward stream that corresponds to the current location of thenormal speed stream. When the user subsequently selects a play command,the VOD server switches back to transmitting the normal speed videostream, beginning the transmission at a location in the normal speedvideo stream that corresponds to the current location of the fastforward stream that is being transmitted.

While long intra-frame intervals do not result in a viewing delay whenon-demand media content is requested, long intra-frame intervals doadversely affect the resolution of trick mode navigation. For example,if the intra-frame intervals in a normal speed and a fast-forward speedvideo stream are one minute, then when a viewer wishes to fast forward,because of the interval between intra-frames, the viewer may onlyfast-forward to points in the stream at one minute intervals. For thisreason, video streams that have longer intra-frame intervals, whichprovide higher video compression, and thus lower overall bitrate, do notlend themselves to systems that support control functions in conjunctionwith video-on-demand.

SUMMARY

Methods and systems for supporting trick modes in conjunction withvideo-on-demand that is encoded with long intra-frame intervals aredescribed. Multiple video streams are encoded with staggered intra-frameintervals, such that a composite intra-frame interval taken over themultiple streams is significantly shorter than an intra-frame intervalassociated with one of the video streams. When a VOD server receives arequest for a video stream associated with a trick mode, the serverselects the video stream with the nearest future intra-frame.

BRIEF DESCRIPTION OF THE DRAWINGS

The same numbers are used throughout the drawings to reference likefeatures and components.

FIG. 1 illustrates an exemplary environment in which long intra-frameinterval video-on-demand trick modes may be implemented.

FIG. 2 illustrates an exemplary VOD repository for storing multiplevideo streams with staggered intra-frame intervals.

FIG. 3 illustrates an exemplary VOD trick mode implementation thatutilizes multiple sets of video streams with staggered intra-frameintervals.

FIG. 4 illustrates a method for encoding multiple video streams withstaggered intra-frame intervals.

FIG. 5 illustrates a method for selecting a video stream from multiplevideo streams with staggered intra-frame intervals.

DETAILED DESCRIPTION

The following discussion is directed to a television-based entertainmentsystem that supports control functions in conjunction withvideo-on-demand encoded with a long intra-frame interval. Multiple videostreams are encoded with staggered intra-frame intervals such that themultiple streams, when examined as a whole have a shorter intra-frameinterval.

Exemplary Environment

FIG. 1 illustrates an exemplary environment 100 in which support fortrick modes in conjunction with video-on-demand encoded with longintra-frame intervals may by implemented. The environment 100 includesone or more video-on-demand (VOD) servers 102 to serve VOD content toone or more client devices 104 via a VOD network 106.

VOD server 102 includes a media encoder 108, a VOD repository 110, astream selector 112, and a VOD transmitter 114. Media encoder 108encodes media content into multiple video streams that can supportvarious trick modes such as fast forward and rewind. Furthermore, foreach supported trick mode, media encoder 108 encodes multiple videostreams with staggered intra-frame intervals. Media encoder may receivethe media content to be encoded from a media content repository (notshown) or from an external media content provider (not shown). VODrepository 110 stores the encoded video streams, which may include videostreams encoded at normal speed, one or more other forward speeds, andone or more reverse speeds. Stream selector 112 controls selection ofappropriate video streams based on client requests. If a user selects a“play” control function, then the stream selector selects one streamfrom a set of normal rate, forward playing video streams. If a userselects a “fast forward” control function then the stream selectorselects one stream from a set of fast forward video streams. VODtransmitter 114 controls the distribution of video streams from VODserver 102, across VOD network 106, to the one or more client devices104. In alternate implementations, media encoder 108, VOD repository110, stream selector 112, and/or VOD transmitter 114 may be implementedas one or more distinct components, locally as part of the VOD server102, or remotely as part of another distinct system.

VOD network 106 can include any type of network that can support atwo-way private connection between VOD server 102 and a client device104. Additionally, VOD network 106 can be any type of network, using anytype of network topology and any network communication protocol, and canbe represented or otherwise implemented as a combination of two or morenetworks including, for example, microwave, satellite, and/or datanetworks, such as the Internet. Furthermore, VOD network 106 may alsoinclude wired or wireless media using any broadcast format or broadcastprotocol.

Client devices 104 can be implemented in a number of ways. For example,client device 104(1) is coupled to receive content (e.g., audio data andvideo data) from VOD network 106 and provide the received content toassociated television 116. Television 116 presents or otherwise rendersthe content received by the client device, as well as a graphical userinterface. A particular client device 104 can be coupled to any numberof televisions 116 and/or similar devices that can be implemented todisplay or otherwise render content. Similarly, any number of clientdevices 104 can be coupled to a television 116.

Client device 104(N) is an example of a combination television 118 andintegrated set-top box 120. In this example, the various components andfunctionality of the set-top box are incorporated into the television,rather than using two separate devices. The set-top box incorporatedinto the television may receive content via VOD network 106. Inalternate implementations, client devices 104 may receive content viathe Internet or any other broadcast medium.

FIG. 2 illustrates an exemplary VOD repository that stores on-demandmedia content in the form of multiple encoded video streams withstaggered intra-frame intervals. Video stream sets 202(1)-202(n)represent groups of video streams that, when played, display mediacontent forward and at normal speed. Video stream sets 204(1)-204(n)represent groups of video streams that, when played, display the samemedia content that is encoded in video stream sets 202(1)-202(n),respectively, forward but at a higher speed (e.g., similar to a displaygenerated by pressing the fast forward button on a VCR while viewing amovie). Video stream sets 206(2)-206(n) represent groups of videostreams that, when played, display the same media content that isencoded in video stream sets 202(1)-202(n) and 204(1)-204(n),respectively, in reverse and at a higher speed than normal viewing(e.g., similar to a display generated by pressing the rewind button on aVCR while viewing a movie). Video stream sets 202(1), 204(1), and 206(1)are encoded representations of a first media content. Similarly, videostream sets 202(2), 204(2), and 206(2) are encoded representations of asecond media content; and video stream sets 202(n), 204(n), and 206(n)are encoded representations of an nth media content. Normal, fastforward, and reverse are types of video streams illustrated in FIG. 2,but it is recognized that other types of video streams may also bestored in the VOD repository, including, but not limited to, slow motionforward, slow motion reverse, high speed reverse, and high speedforward.

Each of the video stream sets 202(1)-206(n) include multiple videostreams with staggered intra-frame intervals. The staggered arrangementwill be described in more detail with respect to FIG. 3.

VOD Trick Mode Implementation with Staggered Intra-Frames

FIG. 3 illustrates an exemplary trick mode implementation with multiplevideo streams encoded with staggered intra-frame intervals. Videostreams 302(a)-302(e) illustrate five forward playing, normal speedvideo streams of a particular media content, such as a movie. Videostreams 304(a)-304(e) represent five forward playing video streams thatdisplay the same media content at twice the normal rate. FIG. 3illustrates video streams having one frame per second. This is forillustrative purposes only, and does not reflect the actual case inwhich encoded video streams typically have several frames per second.Additionally, although not shown in FIG. 3, additional video streams maybe encoded that display the same media content at various speeds inreverse. Timeline 306 represents elapsed movie time associated withvideo streams 302(a)-302(e). Timeline 308 represents elapsed movie timeassociated with video streams 304(a)-304(e).

Each shaded area in each of the video streams represents an encodedintra-frame. Video stream 302(a) represents media content encoded withan intra-frame interval of 10 seconds. As shown, intra-frames areencoded in video stream 302(a) at positions 0:33:00, 0:33:10, 0:33:20,0:33:30, and so on. Video stream 302(b) represents the same mediacontent also encoded with an intra-frame interval of 10 seconds.However, the positions of the encoded intra-frames in video stream302(b) are staggered in relation to the positions of the encodedintra-frames in video stream 302(a). Intra-frames are encoded in videostream 302(b) at positions 0:33:02, 0:33:12, 0:33:22, 0:33:32, and soon. Similarly, video streams 302(c)-302(e) are also encoded withintra-frame intervals of 10 seconds that are staggered by two seconds inrelation to the previous stream. As a result, video streams302(a)-302(e) are a set of video streams with staggered intra-frameintervals, and when taken as a whole, has an intra-frame interval of 10seconds.

Similarly, video streams 304(a)-304(e) have staggered intra-frameintervals with each video stream having an intra-frame interval of 10seconds, but the set of video streams taken as a whole has anintra-frame interval of two seconds.

When a viewer requests (through a client device) the movie representedby video stream sets 302 and 304, a VOD server begins transmitting anormal rate video stream (one of video stream set 302). The particularvideo stream selected from the set of normal rate video streams isarbitrary, and any method may be used to select the video stream that isinitially served to the requesting client device. Arrow 310 in FIG. 3indicates that video stream 302(d) is the normal rate video streaminitially served to the requesting client device.

At 33 minutes and 14 seconds into the movie, the VOD server receives afast forward request from the client device. At this time, the currentlocation of video stream 302(d) is indicated by reference 314. Inresponse to the fast forward request, the VOD server examines fastforward video streams 304(a)-304(e) at a start position 312 thatcorresponds to the current position 314 of the currently playing videostream 302(d). The server selects the fast forward stream that has anintra-frame after and nearest to the start position 312. Video stream304(e) satisfies this requirement. As indicated by arrow 316, the serverbegins transmitting fast forward video stream 304(e).

After 15 seconds of fast forwarding (30 seconds of elapsed movie time),the VOD server receives a request to return to transmitting the mediacontent at normal speed. At this time, the current location of videostream 304(e) is indicated by reference 320. In response to the request,the VOD server examines normal rate video streams 302(a)-302(e) at astart position 318 that corresponds to the current position 320 of thecurrently playing video stream 304(e). The server selects the normalrate video stream that has an intra-frame before and nearest to thestart position 318. Video stream 302(c) satisfies this requirement. Asindicated by arrow 322, the server begins transmitting normal rate videostream 302(c) at the last intra frame that occurs before start position318.

To provide optimal viewing continuity, transmission begins at the firstintra-frame after the identified start position when switching from areverse playing video stream to a forward playing video stream; andtransmission begins at the first intra-frame before the identified startposition when switching from a fast-forward video stream to a normalspeed forward playing video stream.

Methods for Encoding Video Content

Staggered intra-frame video encoding may be described in the generalcontext of computer-executable instructions, such as applicationmodules, being executed by a computer. Generally, application modulesinclude routines, programs, objects, components, data structures, etc.that perform particular tasks or implement particular abstract datatypes. Staggered intra-frame video encoding may also be implemented indistributed computing environments where tasks are performed by remoteprocessing devices that are linked through a communications network. Ina distributed computing environment, application modules may be locatedin both local and remote computer storage media including memory storagedevices.

FIG. 4 illustrates a method 400 for encoding video streams withstaggered intra-frame intervals. The order in which the method isdescribed is not intended to be construed as a limitation. Furthermore,the method can be implemented in any suitable hardware, software,firmware, or combination thereof, and is described with reference tocomponents shown in FIG. 1.

At block 402, a media encoder 108 receives media content to be encoded.The media content may be stored or may be received as a live stream,which may be encoded into the desired format on the fly.

At block 404, the media encoder determines a number of streams to encodeto result in multiple streams with staggered intra-frame intervals. Inone implementation, the media encoder is configured to encode a fixednumber of streams. In an alternate implementation, the media encoderdetermines a number of streams to encode based on a configured,preferred overall intra-frame interval. In another implementation, themedia encoder determines a number of streams to encode based on aconfigured amount of memory available for storing the encoded streamsassociated with a particular media content. In yet anotherimplementation, popularity of a particular media content may be a factorin determining the number of streams to encode. For example, a popular,recently released movie may be encoded into more streams (resulting in asmaller overall intra-frame interval and thus greater trick modeperformance) than an obscure movie that was released several years agoand is not requested frequently by viewers.

At block 406, the media encoder 108 determines the amount by which tostagger the intra-frame intervals across the streams to be encoded. Thisdetermination is based on the number of streams to be encoded and theintra-frame interval with which each stream will be encoded. Forexample, if the media encoder encodes video streams to have anintra-frame interval of 30 seconds, then to determine the staggeramount, the media encoder divides the standard intra-frame interval (30seconds in this case) by the number of streams to be encoded. Forexample, if the media encoder will encode six video streams with30-second intra-frame intervals, then the stagger amount is 5 seconds(30 seconds/6 streams).

At block 408, the media encoder 108 encodes the first video stream intoa set of staggered intra-frame video streams. In an exemplaryimplementation, the first frame of the stream is an intra-frame, andsubsequent intra-frames are inserted according to the establishedintra-frame interval, such as at every 30 seconds of the stream.

At block 410, the media encoder 108 encodes another video stream in theset with the intra-frames staggered based on the position of theintra-frames in the previously encoded stream. In an exemplaryimplementation, the media encoder associates an index number with eachencoded stream, beginning with index number 0 assigned to the firstencoded stream. The first frame of the encoded stream is an intra-frame,and the second intra-frame is inserted at a position equal to the indexnumber multiplied by the determined stagger amount. Based on the exampledescribed above in which the determined stagger amount equals fiveseconds, in the second encoded video stream (index=1), the secondintra-frame is inserted at a position five seconds into the videostream; in the third encoded video stream (index=2), the secondintra-frame is inserted at a position 10 seconds into the video stream.Third and subsequent intra-frames are inserted into each video streamaccording to the encoding format, such as every 30 seconds.

At block 412, the media encoder 108 determines whether the determinednumber of streams have been encoded. If the determined number of streamshave been encoded (the “Yes” branch from block 412), then at block 414the method ends. If the determined number of streams have not beenencoded (the “No” branch from block 412), the method continues at block410.

Methods for Supporting VOD Trick Modes

VOD trick mode support may be described in the general context ofcomputer-executable instructions, such as application modules, beingexecuted by a computer. Generally, application modules include routines,programs, objects, components, data structures, etc. that performparticular tasks or implement particular abstract data types.

FIG. 5 illustrates a method 500 for supporting VOD trick modes. Theorder in which the method is described is not intended to be construedas a limitation. Furthermore, the method can be implemented in anysuitable hardware, software, firmware, or combination thereof, and isdescribed with reference to components shown in FIG. 1.

At block 502, a VOD server 102 receives a request from a client deviceto transmit a particular video-on-demand.

At block 504, a VOD transmitter 114 begins transmitting a forwardplaying, normal speed encoded stream of the selected video to therequesting client device.

At block 506, the VOD server 102 receives a trick mode request from theclient device. The trick mode request may be, for example, a request tofast forward or rewind the video.

At block 508, a stream selector 112 selects an appropriate video streamfor the VOD transmitter to begin transmitting. For example, if theclient request is to fast forward the video, the stream selector selectsa fast forward video stream from the multiple encoded fast forward videostreams with staggered intra-frame intervals. The most appropriatestream is selected by determining the elapsed time of the video in thestream being currently transmitted, and then finding the fast forwardstream that has an intra-frame after, but closest to the determinedelapsed time.

At block 510, the VOD transmitter 114 begins transmitting the selectedvideo stream to the requesting client device.

At block 512, the VOD server 102 determines whether the client devicehas submitted another control function request. At this point, anyrequest for a different video stream associated with the same mediacontent is considered a control function request. This includes arequest to receive a normal speed, forward playing version of the mediacontent (viewer selects the “play” button). If the client device hassubmitted another control function request (the “Yes” branch from block512), then the method continues in block 508. If, on the other hand, theclient device does not submit another control function request (the “No”branch from block 512), then at block 514 the method ends.

CONCLUSION

Although the systems and methods have been described in languagespecific to structural features and/or methodological steps, it is to beunderstood that the invention defined in the appended claims is notnecessarily limited to the specific features or steps described. Rather,the specific features and steps are disclosed as preferred forms ofimplementing the claimed invention.

1. A method for selecting a video stream from a plurality of videostreams comprising: transmitting a first video stream with a firstdisplay speed; receiving a request to transmit a video stream with asecond display speed; determining a current video position associatedwith the first video stream; identifying a start position for a secondvideo stream based on the current video position; and selecting thesecond video stream from multiple video streams having the seconddisplay speed, such that the second video stream has an intra-frame nearthe start position.
 2. A method as recited in claim 1 wherein the firstand second display speeds comprise at least one of normal forward, slowforward, fast forward, normal reverse, slow reverse, or fast reverse. 3.A method as recited in claim 1 wherein the multiple video streams havestaggered intra-frame intervals relative one video stream to anothervideo stream.
 4. A method as recited in claim 1 wherein the multiplevideo streams have equal and staggered intra-frame intervals relativeone video stream to another video stream.
 5. A method as recited inclaim 1 further comprising transmitting the second video stream.
 6. Amethod as recited in claim 1 further comprising transmitting the secondvideo stream, beginning at the start position.
 7. A method as recited inclaim 1 further comprising transmitting the second video stream,beginning at the first intra-frame after the start position.
 8. A methodas recited in claim 1 further comprising transmitting the second videostream, beginning at the last intra-frame before the start position. 9.A method as recited in claim 1 wherein the second video stream has anintra-frame after and closest to the start position, compared to anintra-frame in another one of the multiple video streams having thesecond display speed.
 10. A method as recited in claim 1 wherein thesecond video stream has an intra-frame before and closest to the startposition, compared to an intra-frame in another one of the multiplevideo streams having the second display speed.
 11. One or more computerstorage media encoded with computer executable instructions that, whenexecuted, direct a computing system to perform the method as recited inclaim
 1. 12. A system comprising: means for selecting from a pluralityof video streams with staggered intra-frame intervals, a video streamwith an intra-frame nearest a specified location; and means fortransmitting the video stream that is selected.
 13. A system as recitedin claim 12, wherein the video stream with an intra-frame nearest thespecified location is a video stream with a nearest intra-frame past thespecified location.
 14. A system as recited in claim 12, wherein thevideo stream with an intra-frame nearest the specified location is avideo stream with a nearest intra-frame prior to the specified location.15. A system as recited in claim 12, further comprising means forstoring the plurality of video streams with staggered intra-frameintervals.
 16. One or more computer storage media encoded with computerexecutable instructions that, when executed, direct a computing systemto: transmit a first video stream having a first display attribute;receive a request to transmit a video stream having a second displayattribute; select a second video stream from multiple video streamshaving the second display attribute and staggered intra-frame intervals;and transmit the second video stream.
 17. One or more computer storagemedia as recited in claim 16, wherein the first display attributecomprises a first display speed and the second display attributecomprises a second display speed.
 18. One or more computer storage mediaas recited in claim 16, further encoded with computer executableinstructions that, when executed, direct the computing system to selectthe second video stream by: determining a current position associatedwith the first video stream; identifying a start position associatedwith the multiple video streams that corresponds to the currentposition; and selecting from the multiple video streams, a video streamwith an intra-frame closest to the start position.
 19. One or morecomputer storage media as recited in claim 18, wherein the video streamwith an intra-frame closest to the start position is a video stream witha closest intra-frame before the start position.
 20. One or morecomputer storage media as recited in claim 18, wherein the video streamwith an intra-frame closest to the start position is a video stream witha closest intra-frame after the start position.